#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct QUADRStrainData
{
    SG::DataStructure::Common::Id   m_eId      = 0;      /// Element identification number
    char                            m_TERM[4]  = { 0 };  /// Character string "CEN/"
    SG::DataStructure::Common::Id   m_GRID[5]  = { 0 };  /// Number active grids ID or grid ID
    SG::DataStructure::Common::Real m_FD1[5]   = { 0 };  /// Z1 = Fiber distance
    SG::DataStructure::Common::Real m_X1[5]    = { 0 };  /// Normal in x         at Z1
    SG::DataStructure::Common::Real m_Y1[5]    = { 0 };  /// Normal in y         at Z1
    SG::DataStructure::Common::Real m_TXY1[5]  = { 0 };  /// Shear  in xy        at Z1
    SG::DataStructure::Common::Real m_FD2[5]   = { 0 };  /// Z2 = Fiber distance
    SG::DataStructure::Common::Real m_X2[5]    = { 0 };  /// Normal in x         at Z2
    SG::DataStructure::Common::Real m_Y2[5]    = { 0 };  /// Normal in y         at Z2
    SG::DataStructure::Common::Real m_TXY2[5]  = { 0 };  /// Shear  in xy        at Z2
    SG::DataStructure::Common::Id   m_domainId = 0;      /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const QUADRStrainData& val1, const QUADRStrainData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const QUADRStrainData& a, const QUADRStrainData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
